package main.java.tutorial.springmvc.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.http.HttpStatus;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;

@ControllerAdvice
public class ControllerGlobale {
	
    @ExceptionHandler(NullPointerException.class)
    //Aggiungendo il Response status potremmo bypassare la vista di destinazione generando ad esempio un "page not found" al suo posto
//    @ResponseStatus(value = HttpStatus.CONTINUE, reason = "Errore di NullPointerException nel controller  globale!") 
    public String gestoreEccezioni(HttpServletRequest req, NullPointerException ex) {
    	System.out.println("Eccezione catturata: "+ex.getMessage());
    	req.setAttribute("ex", ex);
        return "errorView";
    } 	

}
